let unFinish = []

let homework = []
let exam = []

// 遍历所有未完成节点
for (const node of getDocument().getElementsByClassName("s_point")) {
    if (node.getAttribute('completestate') == '0') {
        unFinish.push(node)
    }
}

// 进入未完成节点
for (const node of getDocument().getElementsByClassName("s_point")) {
    if (node.getAttribute('completestate') == '0') {
        switch (node.getAttribute('itemtype')) {
            // 作业
            case "homework":
                // TODO
                break;
            // 练习
            case "exam":
                // TODO
                break;
            // 文档
            case "doc":
                // TODO
                // // 等待五秒加载
                // await delay(5)
                // // 进入
                // node.click()
                // // 等待10秒加载
                // await delay(10)
                // let main = getDocument().querySelector("#mainFrame").contentWindow.document
                //     .querySelector("#mainFrame_doc").contentWindow.document
                //     .querySelector("#main")
                // main.scrollTo(0, main.scrollHeight)
                break;
            // 视频
            case "video":
                // 等待五秒加载
                await delay(5)
                // 进入
                node.click()
                // 等待10秒加载
                await delay(10)
                // 循环判断是否看完
                for (; getTime() > 0 && getDocument().querySelector('#mainFrame').contentWindow.document.querySelector("#screen_player_time_2").innerHTML != '00:00';) {
                    await delay(5)
                }
                break;
            // 资源
            case "resource":
                // 等待五秒加载
                await delay(5)
                // 进入
                node.click()
                // 等待10秒加载
                await delay(5)
                break;
            default:
                break;
        }
        unFinish.pop(node)
    }
}

if (unFinish.length > 0) {

}

/**
 * 获取文档
 * @returns 主文档
 */
function getDocument() {
    return document.querySelector("#mainContent").contentWindow.document
}

/**
 * 获取视频剩余时间
 * @returns {int} 时间（秒）
 */
function getVideoTime() {
    let video = getDocument().querySelector('#mainFrame').contentWindow.document
    let nowTime = video.querySelector("#screen_player_time_1").innerHTML
    let allTime = video.querySelector("#screen_player_time_2").innerHTML
    var nt = nowTime.split(':')
    var at = allTime.split(':')
    let time = ((((+at[0]) * 60) + (+at[1])) - (((+nt[0]) * 60) + (+nt[1])))
    return time
}

/**
 * 设置视频倍速
 */
function setVideoPlaybackRate(num) {
    getDocument.querySelector("#container > video").playbackRate = num
}

/**
 * 等待一段时间: await delay(x)
 * @param {int} 时间：秒
 */
function delay(n) {
    return new Promise(function (resolve) {
        setTimeout(resolve, n * 1000);
    });
}
